1. Field of the Invention
The present invention relates generally to recording media having a file sharing program recorded thereon and file sharing apparatuses, and more particularly to a recording medium on which is recorded a file sharing program for sharing a file in a decentralized manner on a network configured of multiple nodes, and to a file sharing apparatus sharing a file in a decentralized manner on a network configured of multiple nodes.
2. Description of the Related Art
In recent years, peer-to-peer (P2P) networks and corporate groupware using a P2P network have been popular. On P2P networks, multiple P2P nodes configure a network so that a file can be shared in a decentralized manner among the P2P nodes.
Each P2P node has a storage unit for storing a file (the entity of a file). By copying the entity of the file (file entity) stored in the storage unit among the P2P nodes, the file entity is shared in a decentralized manner. That is, copies of a certain file are retained by multiple P2P nodes when viewing the entire network.
There are two methods for actual application of the P2P network: sharing file entities among P2P nodes in a decentralized manner and performing centralized management of a list of the files (file list) with a server; and managing file entities in a decentralized manner without a server by sharing the file entities including their file list among P2P nodes in a decentralized manner. Here, a description is given of the latter application method of managing the file list in a decentralized manner.
FIG. 1 is a diagram showing a P2P network. The P2P network of FIG. 1 is configured of four P2P nodes (hereinafter referred to simply as “nodes”) 1 through 4. The P2P network of FIG. 1 has a file list configured of file names and file entity pointers. The file entity pointers are pointers to file entities.
The file entity pointer may point to a storage area of the file entity storage unit of one node or point to a storage area of the file entity storage unit of another node. A format that expresses both in a unified manner in the file entity pointer depends on each application.
In starting file sharing on a P2P network, a node to publish a file (publishing node) determines the file name of a file to be published, and publishes to the P2P network a file list entry where a file entity pointer points to its own file entity storage unit.
This file list entry is passed from one node to another, and is added to a file list retained by each node. On the P2P network, the file list entry is added to the file list of each node, so that the file list is shared in a decentralized manner among the nodes.
Next, a node to retrieve a file transmits a search request to other nodes connected to the node using at least part of the file name of the file that the node desires to obtain as a keyword. FIG. 1 shows the case where the node 1 transmits a search request to the nodes 2 through 4 using a file name “mn” as a keyword.
The search request is passed from one node to another on the P2P network. Each node receiving the search request searches the file list it retains. If the node searches out a corresponding entry, the node returns a search result including a file name and a corresponding file entity pointer to the node that has transmitted the search request (originating node).
In the case of FIG. 1, the node 4 has a corresponding entry, and the node 4 returns a search result including a file name “mnop” and a file entity pointer “ptr-mnop” to the originating node 1.
As a result, in a certain period of time, the originating node receives multiple search results. The originating node selects one of the received search results based on a certain selection criterion. Then, the originating node establishes a connection to the node indicated by the file entity pointer included in the selected search result, and copies and obtains a corresponding file entity.
The above-described selection criterion may be, for instance, appropriateness of a file name by reference to the entire file name, closeness in distance from the originating node to the node indicated by the file entity pointer, or width of the communication band between the originating node and the node indicated by the file entity pointer.
The connection for file forwarding between the originating node and the node indicated by the file entity pointer may be established directly or via one or more other nodes. In the latter case, the target file entity may be copied and thereafter retained by the other intermediary nodes. Thus, the file entity is copied and retained in a decentralized manner in multiple nodes.
In general, the prevailing P2P networks have a file shared among nodes by only file name. Alternatively, for instance, as shown in FIG. 2, not only a file name but also the profile of a file (file profile) may be shared among nodes (for instance, United States Patent Application Publication No. US 2004/0107242). The file profile, which is also referred to as the metadata of a file, is attribute information concomitant with a file.
For example, in the case of a file for word processing software, the file profile includes a title, a subtitle, a creator, and a version. In the case of an image or video file, the file profile includes its encoding method, etc. Items necessary for the file profile differ depending on the file type (for example, a word processing software file, an image file, etc.).
According to the conventional P2P network, a publishing node determines the file profile of a file to be published like a file name, and publishes a file list entry having a set of the file name, file entity pointer, and file profile to the P2P network.
Thereafter, the file list entry is transmitted through the P2P network as described above. On the other hand, at the time of a file search, it is possible to create a search request with not only at least part of a file name but also a file profile being included therein.
However, according to the conventional P2P network, a file profile to be shared is set by the originating node of a file. Accordingly, there is a problem in that another node is prevented from changing the already shared file profile to a more suitable one.